/******************************************************************************************************************************************
* @attention
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
* OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
* -ECTION WITH THEIR PRODUCTS.
*
* COPYRIGHT 2012 Synwit Technology
*******************************************************************************************************************************************/

#ifndef __SWM320_PORT_H__
#define __SWM320_PORT_H__

void PORT_Init(uint32_t PORTx, uint32_t n, uint32_t func, uint32_t digit_in_en);

#define PORTA   0
#define PORTB   1
#define PORTC   2
#define PORTM   3
#define PORTN   4
#define PORTP   5

#define PORTA_PIN0_GPIO         0
#define PORTA_PIN0_FUNMUX       1
#define PORTA_PIN0_SWCLK        2

#define PORTA_PIN1_GPIO         0
#define PORTA_PIN1_FUNMUX       1
#define PORTA_PIN1_SWDIO        2

#define PORTA_PIN2_GPIO         0
#define PORTA_PIN2_FUNMUX       1

#define PORTA_PIN3_GPIO         0
#define PORTA_PIN3_FUNMUX       1

#define PORTA_PIN4_GPIO         0
#define PORTA_PIN4_FUNMUX       1

#define PORTA_PIN5_GPIO         0
#define PORTA_PIN5_FUNMUX       1

#define PORTA_PIN6_GPIO         0
#define PORTA_PIN6_FUNMUX       1

#define PORTA_PIN7_GPIO         0
#define PORTA_PIN7_FUNMUX       1

#define PORTA_PIN8_GPIO         0
#define PORTA_PIN8_FUNMUX       1

#define PORTA_PIN9_GPIO         0
#define PORTA_PIN9_FUNMUX       1
#define PORTA_PIN9_ADC0_IN7     3

#define PORTA_PIN10_GPIO        0
#define PORTA_PIN10_FUNMUX      1
#define PORTA_PIN10_ADC0_IN6    3

#define PORTA_PIN11_GPIO        0
#define PORTA_PIN11_FUNMUX      1
#define PORTA_PIN11_ADC0_IN5    3

#define PORTA_PIN12_GPIO        0
#define PORTA_PIN12_ADC0_IN4    3


#define PORTB_PIN0_GPIO         0
#define PORTB_PIN0_FUNMUX       1
#define PORTB_PIN0_SD_DETECT    2

#define PORTB_PIN1_GPIO         0
#define PORTB_PIN1_FUNMUX       1
#define PORTB_PIN1_SD_CLK       2

#define PORTB_PIN2_GPIO         0
#define PORTB_PIN2_FUNMUX       1
#define PORTB_PIN2_SD_CMD       2

#define PORTB_PIN3_GPIO         0
#define PORTB_PIN3_FUNMUX       1
#define PORTB_PIN3_SD_D0        2

#define PORTB_PIN4_GPIO         0
#define PORTB_PIN4_FUNMUX       1
#define PORTB_PIN4_SD_D1        2

#define PORTB_PIN5_GPIO         0
#define PORTB_PIN5_FUNMUX       1
#define PORTB_PIN5_SD_D2        2

#define PORTB_PIN6_GPIO         0
#define PORTB_PIN6_FUNMUX       1
#define PORTB_PIN6_SD_D3        2

#define PORTB_PIN7_GPIO         0
#define PORTB_PIN7_FUNMUX       1
#define PORTB_PIN7_SD_D4        2

#define PORTB_PIN8_GPIO         0
#define PORTB_PIN8_FUNMUX       1
#define PORTB_PIN8_SD_D5        2

#define PORTB_PIN9_GPIO         0
#define PORTB_PIN9_FUNMUX       1
#define PORTB_PIN9_SD_D6        2

#define PORTB_PIN10_GPIO        0
#define PORTB_PIN10_FUNMUX      1
#define PORTB_PIN10_SD_D7       2

#define PORTB_PIN11_GPIO        0
#define PORTB_PIN11_FUNMUX      1

#define PORTB_PIN12_GPIO        0


#define PORTC_PIN0_GPIO         0
#define PORTC_PIN0_FUNMUX       1

#define PORTC_PIN1_GPIO         0
#define PORTC_PIN1_FUNMUX       1

#define PORTC_PIN2_GPIO         0
#define PORTC_PIN2_FUNMUX       1

#define PORTC_PIN3_GPIO         0
#define PORTC_PIN3_FUNMUX       1

#define PORTC_PIN4_GPIO         0
#define PORTC_PIN4_FUNMUX       1
#define PORTC_PIN4_ADC1_IN3     3

#define PORTC_PIN5_GPIO         0
#define PORTC_PIN5_FUNMUX       1
#define PORTC_PIN5_ADC1_IN2     3

#define PORTC_PIN6_GPIO         0
#define PORTC_PIN6_FUNMUX       1
#define PORTC_PIN6_ADC1_IN1     3

#define PORTC_PIN7_GPIO         0
#define PORTC_PIN7_FUNMUX       1
#define PORTC_PIN7_ADC1_IN0     3


#define PORTM_PIN0_GPIO         0
#define PORTM_PIN0_FUNMUX       1
#define PORTM_PIN0_NORFL_D15    2

#define PORTM_PIN1_GPIO         0
#define PORTM_PIN1_FUNMUX       1
#define PORTM_PIN1_NORFL_D14    2

#define PORTM_PIN2_GPIO         0
#define PORTM_PIN2_FUNMUX       1
#define PORTM_PIN2_NORFL_D13    2

#define PORTM_PIN3_GPIO         0
#define PORTM_PIN3_FUNMUX       1
#define PORTM_PIN3_NORFL_D12    2

#define PORTM_PIN4_GPIO         0
#define PORTM_PIN4_FUNMUX       1
#define PORTM_PIN4_NORFL_D11    2

#define PORTM_PIN5_GPIO         0
#define PORTM_PIN5_FUNMUX       1
#define PORTM_PIN5_NORFL_D10    2

#define PORTM_PIN6_GPIO         0
#define PORTM_PIN6_FUNMUX       1
#define PORTM_PIN6_NORFL_D9     2

#define PORTM_PIN7_GPIO         0
#define PORTM_PIN7_FUNMUX       1
#define PORTM_PIN7_NORFL_D8     2

#define PORTM_PIN8_GPIO         0
#define PORTM_PIN8_FUNMUX       1
#define PORTM_PIN8_NORFL_D7     2

#define PORTM_PIN9_GPIO         0
#define PORTM_PIN9_FUNMUX       1
#define PORTM_PIN9_NORFL_D6     2

#define PORTM_PIN10_GPIO        0
#define PORTM_PIN10_FUNMUX      1
#define PORTM_PIN10_NORFL_D5    2

#define PORTM_PIN11_GPIO        0
#define PORTM_PIN11_FUNMUX      1
#define PORTM_PIN11_NORFL_D4    2

#define PORTM_PIN12_GPIO        0
#define PORTM_PIN12_FUNMUX      1
#define PORTM_PIN12_NORFL_D3    2

#define PORTM_PIN13_GPIO        0
#define PORTM_PIN13_FUNMUX      1
#define PORTM_PIN13_NORFL_D2    2

#define PORTM_PIN14_GPIO        0
#define PORTM_PIN14_FUNMUX      1
#define PORTM_PIN14_NORFL_D1    2

#define PORTM_PIN15_GPIO        0
#define PORTM_PIN15_FUNMUX      1
#define PORTM_PIN15_NORFL_D0    2

#define PORTM_PIN16_GPIO        0
#define PORTM_PIN16_FUNMUX      1
#define PORTM_PIN16_NORFL_OEN   2

#define PORTM_PIN17_GPIO        0
#define PORTM_PIN17_FUNMUX      1
#define PORTM_PIN17_NORFL_WEN   2

#define PORTM_PIN18_GPIO        0
#define PORTM_PIN18_FUNMUX      1
#define PORTM_PIN18_NORFL_CSN   2

#define PORTM_PIN19_GPIO        0
#define PORTM_PIN19_FUNMUX      1
#define PORTM_PIN19_SDRAM_CSN   2

#define PORTM_PIN20_GPIO        0
#define PORTM_PIN20_FUNMUX      1
#define PORTM_PIN20_SRAM_CSN    2

#define PORTM_PIN21_GPIO        0
#define PORTM_PIN21_FUNMUX      1
#define PORTM_PIN21_SDRAM_CKE   2


#define PORTN_PIN0_GPIO         0
#define PORTN_PIN0_FUNMUX       1
#define PORTN_PIN0_LCD_D0       2
#define PORTN_PIN0_ADC1_IN4     3

#define PORTN_PIN1_GPIO         0
#define PORTN_PIN1_FUNMUX       1
#define PORTN_PIN1_LCD_D1       2
#define PORTN_PIN1_ADC1_IN5     3

#define PORTN_PIN2_GPIO         0
#define PORTN_PIN2_FUNMUX       1
#define PORTN_PIN2_LCD_D2       2
#define PORTN_PIN2_ADC1_IN6     3

#define PORTN_PIN3_GPIO         0
#define PORTN_PIN3_FUNMUX       1
#define PORTN_PIN3_LCD_D3       2

#define PORTN_PIN4_GPIO         0
#define PORTN_PIN4_FUNMUX       1
#define PORTN_PIN4_LCD_D4       2

#define PORTN_PIN5_GPIO         0
#define PORTN_PIN5_FUNMUX       1
#define PORTN_PIN5_LCD_D5       2

#define PORTN_PIN6_GPIO         0
#define PORTN_PIN6_FUNMUX       1
#define PORTN_PIN6_LCD_D6       2

#define PORTN_PIN7_GPIO         0
#define PORTN_PIN7_FUNMUX       1
#define PORTN_PIN7_LCD_D7       2

#define PORTN_PIN8_GPIO         0
#define PORTN_PIN8_FUNMUX       1
#define PORTN_PIN8_LCD_D8       2

#define PORTN_PIN9_GPIO         0
#define PORTN_PIN9_FUNMUX       1
#define PORTN_PIN9_LCD_D9       2

#define PORTN_PIN10_GPIO        0
#define PORTN_PIN10_FUNMUX      1
#define PORTN_PIN10_LCD_D10     2

#define PORTN_PIN11_GPIO        0
#define PORTN_PIN11_FUNMUX      1
#define PORTN_PIN11_LCD_D11     2

#define PORTN_PIN12_GPIO        0
#define PORTN_PIN12_FUNMUX      1
#define PORTN_PIN12_LCD_D12     2

#define PORTN_PIN13_GPIO        0
#define PORTN_PIN13_FUNMUX      1
#define PORTN_PIN13_LCD_D13     2

#define PORTN_PIN14_GPIO        0
#define PORTN_PIN14_FUNMUX      1
#define PORTN_PIN14_LCD_D14     2

#define PORTN_PIN15_GPIO        0
#define PORTN_PIN15_FUNMUX      1
#define PORTN_PIN15_LCD_D15     2

#define PORTN_PIN16_GPIO        0
#define PORTN_PIN16_FUNMUX      1
#define PORTN_PIN16_LCD_RD      2
#define PORTN_PIN16_LCD_DOTCK   2

#define PORTN_PIN17_GPIO        0
#define PORTN_PIN17_FUNMUX      1
#define PORTN_PIN17_LCD_CS      2
#define PORTN_PIN17_LCD_VSYNC   2

#define PORTN_PIN18_GPIO        0
#define PORTN_PIN18_LCD_RS      2
#define PORTN_PIN18_LCD_DATEN   2   //Data Enable

#define PORTN_PIN19_GPIO        0
#define PORTN_PIN19_LCD_WR      2
#define PORTN_PIN19_LCD_HSYNC   2


#define PORTP_PIN0_GPIO         0
#define PORTP_PIN0_FUNMUX       1
#define PORTP_PIN0_NORFL_A0     2

#define PORTP_PIN1_GPIO         0
#define PORTP_PIN1_FUNMUX       1
#define PORTP_PIN1_NORFL_A1     2

#define PORTP_PIN2_GPIO         0
#define PORTP_PIN2_FUNMUX       1
#define PORTP_PIN2_NORFL_A2     2
#define PORTP_PIN2_SD_D7        3

#define PORTP_PIN3_GPIO         0
#define PORTP_PIN3_FUNMUX       1
#define PORTP_PIN3_NORFL_A3     2
#define PORTP_PIN3_SD_D6        3

#define PORTP_PIN4_GPIO         0
#define PORTP_PIN4_FUNMUX       1
#define PORTP_PIN4_NORFL_A4     2
#define PORTP_PIN4_SD_D5        3

#define PORTP_PIN5_GPIO         0
#define PORTP_PIN5_FUNMUX       1
#define PORTP_PIN5_NORFL_A5     2
#define PORTP_PIN5_SD_D4        3

#define PORTP_PIN6_GPIO         0
#define PORTP_PIN6_FUNMUX       1
#define PORTP_PIN6_NORFL_A6     2
#define PORTP_PIN6_SD_D3        3

#define PORTP_PIN7_GPIO         0
#define PORTP_PIN7_FUNMUX       1
#define PORTP_PIN7_NORFL_A7     2
#define PORTP_PIN7_SD_D2        3

#define PORTP_PIN8_GPIO         0
#define PORTP_PIN8_FUNMUX       1
#define PORTP_PIN8_NORFL_A8     2
#define PORTP_PIN8_SD_D1        3

#define PORTP_PIN9_GPIO         0
#define PORTP_PIN9_FUNMUX       1
#define PORTP_PIN9_NORFL_A9     2
#define PORTP_PIN9_SD_D0        3

#define PORTP_PIN10_GPIO        0
#define PORTP_PIN10_FUNMUX      1
#define PORTP_PIN10_NORFL_A10   2
#define PORTP_PIN10_SD_CMD      3

#define PORTP_PIN11_GPIO        0
#define PORTP_PIN11_FUNMUX      1
#define PORTP_PIN11_NORFL_A11   2
#define PORTP_PIN11_SD_CLK      3

#define PORTP_PIN12_GPIO        0
#define PORTP_PIN12_FUNMUX      1
#define PORTP_PIN12_NORFL_A12   2
#define PORTP_PIN12_SD_DETECT   3

#define PORTP_PIN13_GPIO        0
#define PORTP_PIN13_FUNMUX      1
#define PORTP_PIN13_NORFL_A13   2
#define PORTP_PIN13_SDRAM_CLK   2

#define PORTP_PIN14_GPIO        0
#define PORTP_PIN14_FUNMUX      1
#define PORTP_PIN14_NORFL_A14   2
#define PORTP_PIN14_SDRAM_CAS   2

#define PORTP_PIN15_GPIO        0
#define PORTP_PIN15_FUNMUX      1
#define PORTP_PIN15_NORFL_A15   2
#define PORTP_PIN15_SDRAM_RAS   2

#define PORTP_PIN16_GPIO        0
#define PORTP_PIN16_FUNMUX      1
#define PORTP_PIN16_NORFL_A16   2
#define PORTP_PIN16_SDRAM_LDQ   2

#define PORTP_PIN17_GPIO        0
#define PORTP_PIN17_FUNMUX      1
#define PORTP_PIN17_NORFL_A17   2
#define PORTP_PIN17_SDRAM_UDQ   2

#define PORTP_PIN18_GPIO        0
#define PORTP_PIN18_FUNMUX      1
#define PORTP_PIN18_NORFL_A18   2

#define PORTP_PIN19_GPIO        0
#define PORTP_PIN19_FUNMUX      1
#define PORTP_PIN19_NORFL_A19   2

#define PORTP_PIN20_GPIO        0
#define PORTP_PIN20_FUNMUX      1
#define PORTP_PIN20_NORFL_A20   2
#define PORTP_PIN20_SDRAM_BA0   2

#define PORTP_PIN21_GPIO        0
#define PORTP_PIN21_FUNMUX      1
#define PORTP_PIN21_NORFL_A21   2
#define PORTP_PIN21_SDRAM_BA1   2

#define PORTP_PIN22_GPIO        0
#define PORTP_PIN22_FUNMUX      1
#define PORTP_PIN22_NORFL_A22   2

#define PORTP_PIN23_GPIO        0
#define PORTP_PIN23_FUNMUX      1
#define PORTP_PIN23_NORFL_A23   2

#define FUNMUX0_UART0_RXD       100
#define FUNMUX0_UART1_RXD       101
#define FUNMUX0_UART2_RXD       102
#define FUNMUX0_UART3_RXD       103
#define FUNMUX0_I2C0_SCL        105
#define FUNMUX0_I2C1_SCL        106
#define FUNMUX0_PWM0A_OUT       107
#define FUNMUX0_PWM2A_OUT       108
#define FUNMUX0_PWM4A_OUT       109
#define FUNMUX0_PWM0B_OUT       110
#define FUNMUX0_PWM2B_OUT       111
#define FUNMUX0_PWM4B_OUT       112
#define FUNMUX0_PWM_BREAK       113
#define FUNMUX0_TIMR0_IN        114
#define FUNMUX0_TIMR2_IN        115
#define FUNMUX0_CAN_RX          116
#define FUNMUX0_SPI0_SSEL       117
#define FUNMUX0_SPI0_MOSI       118
#define FUNMUX0_SPI1_SSEL       119
#define FUNMUX0_SPI1_MOSI       120
#define FUNMUX0_UART0_CTS       121
#define FUNMUX0_UART1_CTS       122
#define FUNMUX0_UART2_CTS       123
#define FUNMUX0_UART3_CTS       124

#define FUNMUX1_UART0_TXD       100
#define FUNMUX1_UART1_TXD       101
#define FUNMUX1_UART2_TXD       102
#define FUNMUX1_UART3_TXD       103
#define FUNMUX1_I2C0_SDA        105
#define FUNMUX1_I2C1_SDA        106
#define FUNMUX1_PWM1A_OUT       107
#define FUNMUX1_PWM3A_OUT       108
#define FUNMUX1_PWM5A_OUT       109
#define FUNMUX1_PWM1B_OUT       110
#define FUNMUX1_PWM3B_OUT       111
#define FUNMUX1_PWM5B_OUT       112
#define FUNMUX1_PULSE_IN        113
#define FUNMUX1_TIMR1_IN        114
#define FUNMUX1_TIMR3_IN        115
#define FUNMUX1_CAN_TX          116
#define FUNMUX1_SPI0_SCLK       117
#define FUNMUX1_SPI0_MISO       118
#define FUNMUX1_SPI1_SCLK       119
#define FUNMUX1_SPI1_MISO       120
#define FUNMUX1_UART0_RTS       121
#define FUNMUX1_UART1_RTS       122
#define FUNMUX1_UART2_RTS       123
#define FUNMUX1_UART3_RTS       124


#endif //__SWM320_PORT_H__
